/*
|---------------------------------------------------------------
| JQValidacion.js
|---------------------------------------------------------------
| @Autor: Kelvin M. Carrion Alfaro
| @Fecha de creacion: 05/06/2010
| @Modificado por: Gerardo D. Ayquipa de la Cruz, Kelvin Carrion Alfaro, Jean Guzman Abregu
| @Ultima fecha de modificacion: 27/05/2011
| @Organizacion: KND S.A.C.
|---------------------------------------------------------------
| Pagina donde se encuentra todas las Validaciones de los estilos aplicados en el sistema
*/
(function($){
    jQuery.fn.valida = function(o){
        var val = jQuery.extend({}, jQuery.fn.def, val);
        return this.each(function(){
           var obj = $(this);
           var valor = '';
           var cont = 0;
           var cont2 =0;
            // Valida solo numeros
            $(".numero").keypress(function(e){
                if(e.which == 0) return true;
                if(e.which == 8) return true;
                if(e.which < 46) return false;
                if(e.which<48 || e.which > 57 ) return false;
            });
            // Valida solo numeros pero sin estilo
            $(".numero2").keypress(function(e){
                if(e.which == 0) return true;
                if(e.which == 8) return true;
                if(e.which < 46) return false;
                if(e.which<48 || e.which > 57 ) return false;
            });
           // Valida solo numeros pero sin estilo
            $(".dni").keypress(function(e){
                if(e.which == 0) return true;
                if(e.which == 8) return true;
                if(e.which < 46) return false;
                if(e.which<48 || e.which > 57 ) return false;
            });

            $(".numcad").keypress(function(e){
                if(e.which == 0) return true;
                if(e.which == 8) return true;
                if(e.which < 46) return false;
                if(e.which<48 || e.which > 57 ) return false;
            });
            // Valida solo letras
            $(".letra").keypress(function(e){
		if(e.which == 0) return true;
                if(e.which == 8) return true;
                if(e.which == 209) return true;
                if(e.which == 32) return true;
                if(e.which == 241) return true;
                if(e.which == 96) return false;
                if(e.which > 122 || e.which < 65)  return false;
            });
            // Valida moneda
            $(".moneda").keypress(function(e){
                if(e.which == 0) return true;
                if(e.which == 8) return true;
                if(e.which == 45) return true;                
                if(e.which < 46) return false;
                if(e.which > 46 && e.which<48) return false;
		if(e.which > 57 ) return false;
            });
            // Valida fecha
            $(".fecha").keypress(function(e){
                if(e.which == 0) return true;
                if(e.which == 8) return true;
                if(e.which == 47) return true;
                if(e.which < 46) return false;
                if(e.which > 46 && e.which<48) return false;
                if(e.which > 57 ) return false;
            });
            // Valida hora
            $(".hora").keypress(function(e){
                if(e.which == 58){
                    hora=$(this).attr('value');
                    arr = hora.split(":");
                    cont=arr.length
                    valor += 1;
                    if(valor > 1){
                        cont=0;
                        return false;
                    }else{
                        if(cont>2){
                            cont=0;
                            return false;
                        }
                    }
                    cont=0;
                }else{
                    valor ='';
                }
                if(e.which == 0) return true;
                if(e.which == 8) return true;
                
                if(e.which<48 || e.which > 58) return false;

                
                
            });
            // Permite todo
            $(".todo").keypress(function(e){
                if(e.which == 0) return true;
                if(e.which == 8) return true;
                if(e.which == 241) return true;
                if(e.which == 209) return true;
                if(e.which == 32) return true;
                if(e.which < 47) return false;
            });
        });
    }
    // Valores por Defalut
    jQuery.fn.def = {
        vBorder : "#FE284F"
    }
})(jQuery)

// Funcion que valida el formato de la fecha
function esFechaValida(fecha){
    if (fecha != undefined && fecha.value != "" ){
        if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha.value)){
            message("Registro de usuario","error","Formato de fecha no válido (dd/mm/aaaa)","messageclose","","");
            fecha.value='';
            return false;
        }
        var dia  =  parseInt(fecha.value.substring(0,2),10);
        var mes  =  parseInt(fecha.value.substring(3,5),10);
        var anio =  parseInt(fecha.value.substring(6),10);
        
        switch(mes){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                numDias=31;
                break;
            case 4: case 6: case 9: case 11:
                numDias=30;
                break;
            case 2:
                if (comprobarSiBisisesto(anio)){numDias=29}else{numDias=28};
                break;
            default:
                message("Registro de usuario","error","Fecha introducida errónea","messageclose","","");
                fecha.value='';
                return false;
        }        
        if (dia>numDias || dia==0){
            message("Registro de usuario","error","Fecha introducida errónea","messageclose","","");
            fecha.value='';
            return false;
        }
        return true;
    }
}

// Funcion que comprueba si el año es bisiesto
function comprobarSiBisisesto(anio){
    if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
        return true;
    }else {
        return false;
    }
}